import logging
from ling.settings import EMAIL_HOST_USER # 配置文件的用户名
from django.core.mail import send_mail # 发送邮件
from celery_takas.celery_main import app # 导入创建的项目的app

# 发送邮箱方法
logger = logging.getLogger(__name__) # __name__表示:当前文件的文件名  用文件名来命名日志器


@app.task(name='send_email_task')  # 通过celery(异步)提交任务
def send_email_task(email,username,password,classes_name):
    '''
    发送通知邮箱
    :param email:收件人的邮箱
    :param username:用户名
    :param password:初始密码
    :param classes_name:所属班级名
    :return:
    '''

    email_name = {
        # 键名是固定的
        'subject':'码趣教育-LMS系统',
        'message':'', # 这个是干嘛用的？？
        'html_message':
        f'''
            <h2>欢迎加入码趣教育[{classes_name}]</h2>
            <p>您的登录用户名是:<span style="color:blue">[{username}]</span></p>
            <p>您的初始登录密码是:<span style="color:red">[{password}]</span>,请及时登录修改密码</p>
            <p><a href="127.0.0.1:8080">点击访问码趣教育-LMS系统</a></p>


        ''',
        'from_email':EMAIL_HOST_USER,# 用户名
        'recipient_list':[email], # 发送人的邮箱号


    }
    # 发送失败则异常处理
    try:
        # 发送成功返回 1
        res_mail  = send_mail(**email_name) # 发送邮件
    except Exception as e:
        # 导入日志器记录报错信息
        logger.error(f'邮件发送[异常][email:{email},]message:{e}')
    else:
        # 发送失败处理
        if res_mail != 1:
            logger.warning(f'发送[失败][email:{email}]') # 记录到日志器当中
        else:
            logger.info(f'邮件发送[正常][email:{email},username:{username}]')


